1. Technical Field
The present invention relates in general to data processing systems, and in particular, networked data processing systems. More particularly, the present invention relates to the management of a networked data processing system. Still more particularly, the present invention relates to the allocation of resources on a networked data processing system.
2. Description of the Related Art
Dynamic Host Configuration Protocol (DHCP) is a protocol for assigning a dynamic internet protocol (IP) address to devices on a network. With dynamic addressing, a device can have a different IP address each time it connects to a network. In some systems, the device's IP address can even change while it is still connected. In any case, when a computer system (i.e., a client system) attaches itself to the network for the first time, it broadcasts a DHCPDISCOVER packet. A DHCP server on the local segment will see the broadcast and return a DHCPOFFER packet that contains an IP address. Other information may also be included, such as which router and domain name server (DNS server) the client system should utilize when connecting to the DHCP server. A router is a device that connects several local area networks (LANs) together. A DNS server is a computer system that contains a program that translates domain names into IP addresses. DNS servers allow users to utilize domain names instead of IP addresses when communicating with other computer systems. An example of a domain name is www.ibm.com.
The client may receive multiple DHCPOFFER packets from any number of servers, so it must choose between them, and broadcast a DHCPREQUEST packet that identifies the explicit server and lease offer that it chooses. A lease is the amount of time an IP address can be allocated to a client system. The decision regarding which lease offer to choose may be based on which offer has the longest lease or provides the most information that the client system needs for optimal operation. If there are more client systems than IP addresses, using shorter leases can keep the server from running out of IP addresses. If there are more addresses than client systems, a permanent lease or a fixed IP address may be assigned to each client system.
The chosen server will return a DHCPACK that tells the client system that the lease is finalized. The other servers will know that their respective offers were not accepted by the client system when they see the explicit DHCPREQUEST packet. If the offer is no longer valid for any reason (e.g., due to a time-out or another client being allocated the lease), the selected server must respond with a DHCPNAK message. The client system will respond with another DHCPDISCOVER packet, which starts the process over again.
Once the client system receives a DHCPACK, all ownership and maintenance of the lease is the responsibility of the client. For example, a client system may refuse an offer that is detailed in the DHCPACK message, and it is the client's responsibility to do so. Client systems test the address that has been offered to them by conducting an address resolution protocol (ARP) broadcast. If another node responds to the ARP broadcast, the client system should assume that the offered address is being utilized. The client system should reject the offer by sending a DHCPDECLINE message to the offering server, and should also send another DHCPDISCOVER packet, which begins the process again.
Once the client system has the lease, it must be renewed prior to the lease expiration through another DHCPREQUEST message. If a client system finishes utilizing a lease prior to its expiration time, the client system is supposed to send a DHCPRELEASE message to the server so that the lease can be made available to other nodes. If the server does not receive a response from the client system by the end of the lease, it indicates the lease is non-renewed, and makes it available for other client systems to utilize in future connection requests.
Therefore, dynamic addressing simplifies network administration because the software keeps track of IP addresses rather than requiring an administrator to manage the task. This means that a new computer system can be added to a network without having to manually assign a unique IP address to a new system.
To assign IP addresses to the client systems, a DHCP server utilizes a configuration file. Stored in the configuration file is a range of IP addresses for each sub-network. This configuration file is utilized to construct a database that is referenced each time a DHCP server assigns an IP address to a client system. Associated with each range of IP addresses are options, such as a router or a DNS server. Therefore, when the DHCP server assigns an IP address from a particular range of addresses to a client system, it also specifies which router and DNS server the client should utilize. Depending on the number of active client systems in a sub-network, there may be times when a particular router and/or DNS server is overburdened with network traffic. When that occurs, the system administrator may want to load-balance to the network by associating a new router and/or DNS server with the range of IP addresses. Traditionally, the system administrator would have to modify the configuration file with the location information of the new router and/or DNS server.
As is well-known in the art, each time a configuration file is modified, the DHCP server has to be refreshed. During the time the DHCP server is refreshing, the DHCP server is off-line and cannot respond to any IP address requests. Also, while client systems that request IP addresses after the DHCP server has been refreshed will utilize a new router and/or DNS server, the client systems that were assigned IP addresses before the DHCP server was refreshed will continue to use the overburdened router and/or DNS server.
U.S. Patent Application Publication Number 2003/0163341, “Apparatus and Method of Dynamically Updating Dynamic Host Configuration Protocol (DHCP) Options,” filed by IBM Corporation, the assignee of the present application, deals with this problem by storing the options in the configuration file in a special stanza that includes dynamic options and a frequency at which the options are to be updated. The options typically include a router and a DNS server that the client systems utilize when connecting to the network. Each time the options are updated, a different router and/or DNS server is utilized for subsequent client system transactions. The prior router and/or DNS server are removed from the dynamic stanza and not utilized in future client system transactions. While the referenced application solves the problem of requiring the DCHP server to be taken off-line each time the system administrator edits the configuration file by inserting the new options, the options are only updated at a preset time interval. This means that the system administrator must uniquely tailor the present time interval for updating the options so that each individual option is not overburdened. For example, if the system administrator sets a lengthy preset time interval, the options would not be updated frequently enough to prevent each option from becoming overburdened with network traffic.
Also well-known in the art is load-balancing of DHCP options via the utilization of virtual subnets. In the past, system administrators were required to divide a subnet (i.e. IP addresses the DHCP server may assign to incoming client systems) into virtual subnets and allocate the options among the virtual subnets. Therefore, whenever a client system was assigned an IP address by the DHCP server, the DHCP server also assigned the options related to that particular virtual subnet. However, in the event that there are more options added to the network, the system administrator would have to manually distribute the new options among the virtual subnets or redefine the ranges of the virtual subnets.
Therefore, there is a need for dynamically load-balancing DHCP network options without the need for refreshing the DHCP server and without the utilization of virtual subnets.